// Simple File List Pro - File Access Manager - Copyright 2022
// Author: Mitchell Bennis | support@simplefilelist.com | https://simplefilelist.com
// License: EULA | https://simplefilelist.com/end-user-license-agreement/
// All changes to, modifications to, or re-uses of this script are prohibited without prior consent.
// Copy File to List ---------------------------------
// Open the File Copy Modal
function eeSFLA_OpenCopyModal(eeSFL_FileID) {
event.preventDefault(); // Don't follow the link
// Use eeSFL_RealFilePath if Searching
// var eeSFL_RealFilePath = jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' span.eeSFL_RealFilePath').text();
// if(eeSFL_RealFilePath) { eeSFL_SubFolder = eeSFL_RealFilePath; }
eeSFL_RealFileName = jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' span.eeSFL_RealFileName').text();
jQuery('#eeSFL_Modal_FileID').text(eeSFL_FileID);
jQuery('#eeSFLA_Modal_Copy .eeSFL_ModalFilePath').text(eeSFL_RealFileName);
jQuery('#eeSFLA_Destination').html(''); // Reset / Clear
var eeDestinations = JSON.parse(eeSFLA_CopyDestinations);
for(var i = 1; i <= Object.keys(eeDestinations).length ; i++) {
// Build Options HTML
if(i != eeSFL_ListID) {
jQuery('#eeSFLA_Destination').append('');
}
}
jQuery('#eeSFLA_Modal_Copy').show();
}
// AJAX Post to Access Engine
function eeSFLA_FileDoCopy() { // File ID
event.preventDefault(); // Don't do anything
// NOTE - Currently the Copy to List input only selcts one choice, but this script can accept multiple.
var eeLists = '';
var eeListIDs = new Array;
// Checkbox inputs
// eeListIDs = jQuery( "input[name='eeListID']:checked" );
// jQuery.each(eeListIDs, function(index, element) {
// eeLists = eeLists + jQuery(element).val() + ',';
// });
// Select input
var eeLists = jQuery('#eeSFLA_Destination').val();
// Optional Inputs
var eeInboxName = jQuery('#eeSFLA_InboxName').val();
var eeInboxDescription = jQuery('#eeSFLA_InboxDescription').val();
var eeInboxEmail = jQuery('#eeSFLA_InboxEmail').val();
var eeInboxNotify = jQuery('#eeSFLA_InboxNotify').val();
if(eeSFL_ListID && eeLists && eeSFL_RealFileName) {
var eeFormData = {
'action': 'simplefilelist_copy_job',
'eeSecurity': eeSFLA_CopyNonce,
'eeAction': 'COPY', // COPY
'eeListID': eeSFL_ListID, // Source
'eeListIDs': eeLists, // Destinations
'eeFilePath': eeSFL_RealFileName, // Source File - Relative to FileListDir
'eeInboxName': eeInboxName,
'eeInboxDescription': eeInboxDescription,
'eeInboxEmail': eeInboxEmail,
'eeInboxNotify': eeInboxNotify
};
console.log(eeFormData);
jQuery.post(eesfl_vars.ajaxurl, eeFormData, function(response) {
// Problems
if(response != 'SUCCESS') { alert(response); }
});
jQuery('.eeSFL_Modal').hide();
}
}
// Grant Access -------------------------------------
// Open the File Access Modal and Pre-Populate the Inputs
function eeSFLA_OpenAccessModal(eeSFL_FileID) {
event.preventDefault(); // Don't follow the link
var eeID = '';
// Modal Display
jQuery('.eeSFLA_UserTick').prop( "checked", false ); // Uncheck the boxes to begin with
jQuery('#eeFileMatchMode').val('NO');
eeSFL_RealFileName = jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' span.eeSFL_RealFileName').text();
jQuery('#eeSFLA_Access_FileID').text(eeSFL_FileID);
jQuery('#eeSFLA_Modal_Access .eeSFL_ModalFilePath').text(eeSFL_RealFileName);
// Get Current Roles and Users for Pre-Population
eeSFLA_Access_Role = jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLA_Access_Role').text();
// eeSFLA_Access_Role = 'Min|1';
// eeSFLA_Access_Role = 'Match|Editor';
if(eeSFLA_Access_Role) {
var eeArray = eeSFLA_Access_Role.split('|');
jQuery('#eeFileMatchMode').val(eeArray[0]);
if(eeArray[0] == 'Min') {
jQuery('#eeFileMinRole').val(eeArray[1]);
} else {
jQuery('#eeFileMatchRole').val(eeArray[1]);
}
}
// Get Currently Assigned Users
eeSFLA_Access_Users = jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLA_Access_Users').text();
if(eeSFLA_Access_Users) {
var eeArray = eeSFLA_Access_Users.split(',');
console.log(eeArray);
jQuery.each(eeArray, function(index, element) {
jQuery('.eeSFLA_UserTick').each(function() {
if(jQuery(this).val() == element) {
jQuery(this).prop( "checked", true );
}
});
});
}
// File Role Selects
jQuery('#eeFileMinRole').hide();
jQuery('#eeFileMatchRole').hide();
if(jQuery('#eeFileMatchMode').val() == 'Min') {
jQuery('#eeFileMinRole').show();
} else if(jQuery('#eeFileMatchMode').val() == 'Match') {
jQuery('#eeFileMatchRole').show();
}
// Show It
jQuery('#eeSFLA_Modal_Access').show();
}
// AJAX Post to Access Engine
function eeSFLA_FileDoAccess() {
event.preventDefault(); // Don't do anything
var eeHasAccess = false;
eeSFL_FileID = jQuery('#eeSFLA_Access_FileID').text();
// Get this File Path
if(eeSFL_SubFolder != '/') {
eeSFL_FullFilePath = eeSFL_SubFolder + eeSFL_RealFileName;
eeSFL_FullFilePath = eeSFL_FullFilePath.replace('//', '/'); // Fix double slashes
} else {
eeSFL_FullFilePath = eeSFL_RealFileName
}
// Get Checked Users
eeSFLA_Access_Users = '';
var eeArray = jQuery( '.eeSFLA_UserTick:checked' ).get();
jQuery.each(eeArray, function(index, element) {
eeSFLA_Access_Users = eeSFLA_Access_Users + jQuery(element).val() + ','
});
// Get the Role Selected
eeSFLA_Access_Role = jQuery('#eeFileMatchMode').val();
if(eeSFLA_Access_Role == 'Min') {
eeSFLA_Access_Role = eeSFLA_Access_Role + '|' + jQuery('#eeFileMinRole').val();
} else if(eeSFLA_Access_Role == 'Match') {
eeSFLA_Access_Role = eeSFLA_Access_Role + '|' + jQuery('#eeFileMatchRole').val();
}
// List Styling
if( eeSFLA_Access_Users.length >= 1 ) { eeHasAccess = true; }
if( eeSFLA_Access_Role != 'NO') { eeHasAccess = true; }
var eeFormData = {
'action': 'simplefilelist_access_job',
'eeSecurity': eeSFLA_AccessNonce,
'eeListID': eeSFL_ListID,
'eeFilePath': eeSFL_FullFilePath,
'eeUserRole': eeSFLA_Access_Role, // Users: Min|3 or Match|Editor
'eeUserIDs': eeSFLA_Access_Users // Users: 3,8,66,125
};
console.log(eeFormData);
jQuery.post(eesfl_vars.ajaxurl, eeFormData, function(response) {
console.log(response);
if(response != 'SUCCESS') { alert(response); }
if(eeHasAccess) {
jQuery('#eeSFL_FileID-' + eeSFL_FileID).addClass('eeSFLA_FileHasAccess');
jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLS_HasAccess_Accent ').text('*');
} else {
jQuery('#eeSFL_FileID-' + eeSFL_FileID).removeClass('eeSFLA_FileHasAccess');
jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLS_HasAccess_Accent ').text('');
}
jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLA_Access_Role').text(eeSFLA_Access_Role);
jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLA_Access_Users').text(eeSFLA_Access_Users);
jQuery('.eeSFL_Modal').hide();
});
}
// Visual Input Controls --------------------------
// ONLOAD -----------------------------------
jQuery(document).ready(function() {
jQuery('.eeRoleSelect').hide();
// Limited Role Selects
if(jQuery('#eeLimitedMatchMode').val() == 'Min') {
jQuery('#eeLimitedMinRole').show();
jQuery('#eeLimitedMatchRole').hide();
} else {
jQuery('#eeLimitedMinRole').hide();
jQuery('#eeLimitedMatchRole').show();
}
var eeUploadMatchMode = jQuery('#eeUploadMatchMode').val();
if(eeUploadMatchMode == 'Min' || eeUploadMatchMode == 'Match') {
if(jQuery('#eeUploadMatchMode').val() == 'Min') {
jQuery('#eeUploadMinRole').show();
jQuery('#eeUploadMatchRole').hide();
} else {
jQuery('#eeUploadMinRole').hide();
jQuery('#eeUploadMatchRole').show();
}
}
var eeManageMatchMode = jQuery('#eeManageMatchMode').val();
if(eeManageMatchMode == 'Min' || eeManageMatchMode == 'Match') {
if(jQuery('#eeManageMatchMode').val() == 'Min') {
jQuery('#eeManageMinRole').show();
jQuery('#eeManageMatchRole').hide();
} else {
jQuery('#eeManageMinRole').hide();
jQuery('#eeManageMatchRole').show();
}
}
var eeCopyMatchMode = jQuery('#eeCopyMatchMode').val();
if(eeCopyMatchMode == 'Min' || eeCopyMatchMode == 'Match') {
if(jQuery('#eeCopyMatchMode').val() == 'Min') {
jQuery('#eeCopyMinRole').show();
jQuery('#eeCopyMatchRole').hide();
} else {
jQuery('#eeCopyMinRole').hide();
jQuery('#eeCopyMatchRole').show();
}
}
// Show or Hide the Role Selection Box
jQuery('#eeSFLA_ListAccessFormInputs input[type=radio]').on('click', function() {
var eeVar = jQuery(this).val();
if(eeVar == "LIMITED") {
jQuery('#eeLimitedRoleSelect').slideDown();
if(jQuery('#eeLimitedMatchMode').val() == 'Min') {
jQuery('#eeLimitedMatchRole').hide();
} else {
jQuery('#eeLimitedMinRole').hide();
}
} else {
jQuery('#eeLimitedRoleSelect').hide();
}
if(eeVar == 'GROUP') {
jQuery('#eeSFLA_WpUserTickboxes').slideDown();
// Add new option to operations access
jQuery('#eeUploadMatchMode').prepend('');
jQuery('#eeUploadMatchMode').val('GROUP');
jQuery('#eeManageMatchMode').prepend('');
jQuery('#eeManageMatchMode').val('GROUP');
jQuery('#eeCopyMatchMode').prepend('');
jQuery('#eeCopyMatchMode').val('GROUP');
jQuery('#eeUploadMinRole').hide();
jQuery('#eeUploadMatchRole').hide();
jQuery('#eeManageMinRole').hide();
jQuery('#eeManageMatchRole').hide();
jQuery('#eeCopyMinRole').hide();
jQuery('#eeCopyMatchRole').hide();
} else {
jQuery('#eeSFLA_WpUserTickboxes').hide();
jQuery('#eeUploadMatchModeThisGroupOnly').remove();
jQuery('#eeManageMatchModeThisGroupOnly').remove();
jQuery('#eeCopyMatchModeThisGroupOnly').remove();
}
if(eeVar == 'USER') {
// Add new option to operations access
jQuery('#eeUploadMatchMode').prepend('');
jQuery('#eeUploadMatchMode').val('USER');
jQuery('#eeManageMatchMode').prepend('');
jQuery('#eeManageMatchMode').val('USER');
jQuery('#eeCopyMatchMode').prepend('');
jQuery('#eeCopyMatchMode').val('USER');
jQuery('#eeUploadMinRole').hide();
jQuery('#eeUploadMatchRole').hide();
jQuery('#eeManageMinRole').hide();
jQuery('#eeManageMatchRole').hide();
jQuery('#eeCopyMinRole').hide();
jQuery('#eeCopyMatchRole').hide();
jQuery('#eeSFLA_WpUserSelect').slideDown();
} else {
jQuery('#eeSFLA_WpUserSelect').hide();
jQuery('#eeUploadMatchModeThisUserOnly').remove();
jQuery('#eeManageMatchModeThisUserOnly').remove();
jQuery('#eeCopyMatchModeThisUserOnly').remove();
}
});
// File Role Settings Display
jQuery('#eeFileMatchMode').on('change', function() {
var eeMinMatch = jQuery('#eeFileMatchMode').val();
if( eeMinMatch == 'Min' ) {
jQuery('#eeFileMatchRole').hide();
jQuery('#eeFileMinRole').show();
} else if(eeMinMatch == 'Match') {
jQuery('#eeFileMinRole').hide();
jQuery('#eeFileMatchRole').show();
} else {
jQuery('#eeFileMinRole').hide();
jQuery('#eeFileMatchRole').hide();
}
});
// Limited List Role Settings Display
jQuery('#eeLimitedMatchMode').on('change', function() {
var eeMinMatch = jQuery('#eeLimitedMatchMode').val();
if( eeMinMatch == 'Min' ) {
jQuery('#eeLimitedMatchRole').hide();
jQuery('#eeLimitedMinRole').show();
} else {
jQuery('#eeLimitedMinRole').hide();
jQuery('#eeLimitedMatchRole').show();
}
});
// Uploading
jQuery('#eeUploadMatchMode').on('change', function() {
var eeMinMatch = jQuery('#eeUploadMatchMode').val();
if( eeMinMatch == 'Min' ) {
jQuery('#eeUploadMatchRole').hide();
jQuery('#eeUploadMinRole').show();
} else if( eeMinMatch == 'Match' ) {
jQuery('#eeUploadMinRole').hide();
jQuery('#eeUploadMatchRole').show();
} else {
jQuery('#eeUploadMinRole').hide();
jQuery('#eeUploadMatchRole').hide();
}
});
// Manage
jQuery('#eeManageMatchMode').on('change', function() {
var eeMinMatch = jQuery('#eeManageMatchMode').val();
if( eeMinMatch == 'Min' ) {
jQuery('#eeManageMatchRole').hide();
jQuery('#eeManageMinRole').show();
} else if( eeMinMatch == 'Match' ) {
jQuery('#eeManageMinRole').hide();
jQuery('#eeManageMatchRole').show();
} else {
jQuery('#eeManageMinRole').hide();
jQuery('#eeManageMatchRole').hide();
}
});
// Copy
jQuery('#eeCopyMatchMode').on('change', function() {
var eeMinMatch = jQuery('#eeCopyMatchMode').val();
if( eeMinMatch == 'Min' ) {
jQuery('#eeCopyMatchRole').hide();
jQuery('#eeCopyMinRole').show();
} else if( eeMinMatch == 'Match' ) {
jQuery('#eeCopyMinRole').hide();
jQuery('#eeCopyMatchRole').show();
} else {
jQuery('#eeCopyMinRole').hide();
jQuery('#eeCopyMatchRole').hide();
}
});
// Auto-fill new list folder input
jQuery('#eeSFLA_ListName').on('change', function() {
// Check if this is in our list of current list titles
var eeTitle = jQuery('#eeSFLA_ListName').val();
jQuery('#eeSFLA_ListName').css('background-color', '#FFF');
var eePos = eeAllListTitles.indexOf(eeTitle);
if(eePos > 0) { // List name already used
jQuery('#eeSFLA_ListName').css('background-color', '#FC6969');
} else {
var eeDir = jQuery('#eeSFLA_ListDir').val();
if(eeDir.length < 1) {
eeDir = jQuery('#eeSFLA_ListName').val();
// Fill the PostTitle Box
jQuery('#eeSFLA_CreatePostTitle').val(eeDir);
// Sanitize to match reality
eeDir = eeDir.replace(/ /g, '-'); // Deal with spaces
eeDir = eeDir.replace(/--/g, '-'); // Deal with double dash
eeDir = eeDir.replace(/\./g, '-'); // Deal with dots
eeDir = eeDir.replace(/[^a-zA-Z0-9-]/g, ""); // Strip special chars, cept the dash
eeDir = eeDir.toLowerCase();
jQuery('#eeSFLA_ListDir').val('wp-content/uploads/' + eeDir + '/');
}
}
});
// Check / Uncheck all Tickboxes
jQuery('#eeSFLA_CheckAll').on('click', function() {
if( jQuery('#eeSFLA_CheckAll').text() == 'Uncheck All') {
jQuery('#eeSFLA_Users input:checkbox').removeAttr('checked');
jQuery('#eeSFLA_CheckAll').text('Check All');
} else {
jQuery('#eeSFLA_Users input:checkbox').attr('checked','checked');
jQuery('#eeSFLA_CheckAll').text('Uncheck All');
}
});
// If File Grant Access is Anybody, disable user checkboxes
jQuery('.eeSFLA_AnybodyTick').on('click', function() {
// Identify this file
var eeID = '.' + jQuery(this).parent().parent().attr('class');
if( jQuery(eeID + ' .eeSFLA_AnybodyTick').is(':checked') ) {
jQuery(eeID + ' .eeSFLA_UserTick').attr('disabled', true);
jQuery(eeID + ' .eeSFLA_AnybodyTick').removeAttr('disabled');
} else {
jQuery(eeID + ' .eeSFLA_UserTick').removeAttr('disabled');
}
});
}); // END Ready Function